import time
from public.action import *
from public.business import *
from public.testData import *
from public.tools import *
testcase = "dbshop003_货到付款流程"
# 1.在首页搜索"小米",点击搜索按钮
ff = openBrowser(url)
DBshopLogin(ff, userName, password)
ff.find_element_by_xpath("//input[@name='keywords']").send_keys("小米")
ff.find_element_by_xpath('//input[@type="submit"]').click()
# 2.选择小米mix3,加入到购物车,点击购物车按钮
ff.find_element_by_xpath('//a[@href="/dbshop/goods/8/2"]').click()
switchWindow(ff, 2)
ff.find_element_by_id('add_cart_submit').click()
time.sleep(1)
# 3.点击"去结算"按钮
ff.find_element_by_link_text('去购物车结算').click()
ff.find_element_by_link_text('去结算').click()
# 4.默认地址已经别选择,点击下一步按钮
ff.find_element_by_xpath('//input[@value="下一步"]').click()
# 5.支付方式选择"货到付款",点击确认订单。
ff.find_element_by_xpath('//input[@value="hdfk"]').click()
ff.find_element_by_xpath('//input[@value="确认订单"]').click()
# 将订单编号写入到文件中
NO = ff.find_element_by_xpath('(//font[@color="color:#ED145B"])[2]').text
rootPath = get_pro_rootpath()
writeFile(rootPath+'\public\order1.txt', NO)
# 6.登录后台管理系统,地址是"http://localhost/dbshop/admin",
ff.get(urlAdmin)
DBshopLoginAdmin(ff)
# 7.点击商品管理订单管理，找到刚才前台提交的订单，点击“编辑查看”。
DBshopEnterMenu2(ff, '销售管理', '订单管理')
ff.find_element_by_name('order_sn').send_keys(NO)
ff.find_element_by_xpath('//button').click()
ff.find_element_by_link_text('编辑查看').click()
# 8.点击发货操作按钮，编辑快递单号“1000000000” 发货说明“保证正品”，点击“点击发货”按钮。
ff.find_element_by_link_text('发货操作').click()
ff.find_element_by_id("express_number").send_keys(NO)
ff.find_element_by_id("state_info").send_keys("保证正品")
ff.find_element_by_xpath("//button[@type='submit']").click()
# 9.点击付款操作按钮,付款状态选择"已付款",点击提交保存按钮
ff.find_element_by_link_text('付款操作').click()
ff.find_element_by_xpath('//button').click()
# 10.进入dbshop前台我的订单—已发货，点击“确认收货”按钮，完成订单。
switchWindow(ff, 1)
ff.find_element_by_link_text('我的订单').click()
ff.find_element_by_partial_link_text('已发货').click()
ff.find_element_by_name('search_order_sn').send_keys(NO)
ff.find_element_by_xpath('//button').click()
ff.find_element_by_xpath('//button[text()="确认收货"]').click()
ff.find_element_by_xpath('//button[@type="submit"]').click()
ff.switch_to.alert.accept()
# 11.进入dbshop前台查看我的订单"交易完成"中,检查上面的订单状态
ff.find_element_by_partial_link_text('交易完成').click()
ff.find_element_by_name('search_order_sn').send_keys(NO)
ff.find_element_by_xpath('//button').click()
# 断言
try:
    ff.find_element_by_link_text(NO).is_displayed()  # is_displayed()函数判断元素是否显示
    writeLog("%s 测试通过" % testcase)
except:
    writeLog("%s 测试失败" % testcase)
    getPhoto(ff)
ff.quit()